package lsl.Git.远程仓库;

public class C02克隆抓取和拉取 {
}
/*
            /我们之前做的是,把我们的本地仓库推送到远程仓库中去,别人想用你的仓库
                /就是把你的仓库直接拉过去,这个操作就是克隆
            从远程仓库克隆:
                /如果已经都一个远程仓库了,我们可以直接clone到本地
                命令:
                    /git clone <仓库路径> [本地目录]
                        /其中本地目录可以省略,会自动生成一个目录

                实战:
                    /我们用两个文件夹来模拟这个事情
                        /你直接在桌面打开GitBash,执行命令
                            /git clone git@gitee.com:mactcp/git_lsl.git
                                /现在生成的文件夹就是从云端拉过来的文件夹
                                    /当然你不能使用你桌面打开的bash来操作仓库要进去操作




           简单思考我们克隆的操作会非常频繁吗?
                /项目一大起来,你还克隆??
                    /克隆只有一次
                        /后续你叠加新的功能的时候,我们有新的指令
                        /我们提交更新到仓库
                            /别人再从仓库更新到本地,不需要对整个仓库,而是针对新的修改
               概念:
                   /远程分支和本地分支一样,我们可以进行merge合并操作,只需要先把远程仓库的更新都下载到本地
                        /再本地进行操作即可

                        抓取指令:
                            /git fetch [remote name] [branch name]
                                1.抓取指令就是将仓库里的更新都抓取到本地,不会进行合并的
                                2.如果不指定远端名称和分支名,则默认抓取所有分支
                                    /但是我们的分支是和远程仓库的分支有绑定的,所以我们其实没有抓取所有分支
                                        /仅仅是抓取了远程仓库的master分支,但是远程只有master分支


                        拉取指令:
                            /git pull [remote name] [branch name]
                                1.拉取指令就是将远端仓库的修改拉倒本地仓库,并自动进行合并
                                    /相当于marge + fetch
                                2.如果不指定远端名称和分支名,则抓取所有并更新当前分支


                       实战:
                            /在git_lsl中创建文件,并提交
                                git-log
                                * 42fe051 (HEAD -> master) 跟新的资源03
                                *   5dea062 (origin/master, origin/HEAD) Merge branch 'dev01'
                                |\
                                | * 334f41d file02提交了
                                * | 8c48ba9 add ignore file
                                |/
                                * ef38e16 第二次提交
                                * f9dbaea add file01


                            当你push过去之后再git-log的时候就有
                                $ git-log
                                * 42fe051 (HEAD -> master, origin/master, origin/HEAD) 跟新的资源03
                                *   5dea062 Merge branch 'dev01'
                                |\
                                | * 334f41d file02提交了
                                * | 8c48ba9 add ignore file
                                |/
                                * ef38e16 第二次提交
                                * f9dbaea add file01
                                    /本地默认给你合并了


                            在另一个仓库直接git pull即可完成代码的拉取
                                $ git-log
                                * 42fe051 (HEAD -> master, origin/master) 跟新的资源03
                                *   5dea062 Merge branch 'dev01'
                                |\
                                | * 334f41d file02提交了
                                * | 8c48ba9 add ignore file
                                |/
                                * ef38e16 第二次提交
                                * f9dbaea add file01


                            /origin/HEAD并不是一个具体的分支，而是一个指向远程仓库默认分支的引用。当你克隆一个远程仓库时，origin/HEAD会指向远程仓库的默认分支，通常是master分支。
                                /为什么下面的没有
                                    /因为远程仓库就是就是下面推上去的

 */
